Method and device for controlling movements in the case of manipulators

ABSTRACT

In a method for controlling the movement of a manipulator, such as an industrial robot, associated with an interpretation of a given point sequence of poses (positions and orientations) by splines, the motion components are separately parametrized. Thus, marked, subsequent changes to the orientation of robot axes have no undesired effects on the Cartesian movement path of the robot. The invention also proposes suitable algorithms for orientation control by means of quaternions or Euler angles.

FIELD OF THE INVENTION

[0001] The invention relates to a method for controlling movements of amanipulator, such as an industrial robot, comprising an interpolation ofa given point sequence of poses (positions and orientations) by splinesand a device, more particularly suitable for performing the methodaccording to the invention.

BACKGROUND OF THE INVENTION

[0002] Movements of controlled manipulators, e.g. industrial robots, aregenerally determined by a preestablished sequence of points in amultidimensional space. In the case of a multiaxial industrial roboteach of these points incorporates the Cartesian coordinates of positionsand coordinates with respect to the orientation in three-dimensionalEuclidean space and optionally coordinates of auxiliary axes.

[0003] As a rule a robot movement is not rigidly predetermined, butinstead merely has a number of fixed points, which are based on theoperations to be performed, e.g. the taking up and setting down ofworkpieces, passing round obstacles, etc. The fixed points are taught tothe robot control used for movement control purposes in a manual mannerby starting and storing the corresponding poses and are then availableas a point sequence with respect to which the robot movement to beexecuted must be oriented, i.e. all the fixed points clearly define theresulting path curve.

[0004] In order to obtain a handy, functional description in place of apoint sequence and permit the continuity of the robot movement in allcomponents of motion, the point sequence is generally interpolated. Afunctional description of the point sequence obtained by interpolationserves a number of purposes. Firstly the data quantity is compressed andsecondly it is possible to obtain informations with respect to valuesnot contained in the point sequence, e.g. by extrapolation. Finally, ahigher evaluation rate occurs, because the evaluation of a function canoften be implemented faster than a reference in a table.

[0005] In the industrial practice of movement control for interpolatingthe aforementioned point sequences use is frequently made of splinefunctions, which satisfy tailor-made demands, particularly with respectto the smoothness of the curve obtained, the continuity anddifferentiatability of the first derivative thereof and the continuityof the second derivative thereof. As the first and second derivatives ofa path curve can be identified with the speed or acceleration of anobject moved along the curve, said characteristics are of greatimportance for an efficient movement control of industrial robots.

[0006] A known method for the movement control of industrial robotsusing spline interpolations is described in an article by Horsch andJüttler (Computer-Aided Design, vol. 30, pp 217-224, 1998). The contourof a robot movement is represented sectionwise by means of a suitabledegree or order polynomial.

[0007] In the known method for the movement control of industrial robotsby spline interpolation, it has proved disadvantageous that in sectionsof the point sequence to be interpolated in which changes to theorientation, the Cartesian position and possibly the position of theadditional axes occur in widely differing form (e.g. minimum Cartesianchanges with large orientation changes), undesired, uneconomic movementpaths can occur. In particular, in such cases movement loops can occur,i.e. one or more components of the robot movement locally lead to aninefficient moving backwards and forwards, because the movement guidancein this specific section of the point sequence is dominated bysignificant changes in other components of motion. It is also considereddisadvantage with per se fixed movement paths a subsequent pronouncedchange to individual components of motion, e.g. the subsequentprogramming of a strong reorientation, can have an effect on thebehaviour of the other components of motion, so that e.g. as aconsequence of the reorientation the Cartesian contour of the path alsochanges, which is unacceptable for the user.

[0008] For the orientation guidance of Cartesian movements, which aree.g. in the form of splines, frequent use is made of quaternions.Quaternions are generalized complex numbers in the form of a numberquadruple, which can be represented as a real-value scalar part andcomplex-value three-vector. Quaternions are closely linked with thematrix representation of rotations and are therefore preferably used forthe orientation guidance in computer animations and for robot controlpurposes. A point sequence of robot orientations is consequentlyrepresented by a four-dimensional spline in the quaternion space.

[0009] In order to obtain in this connection an optimum favourable,uniform parametrization of the orientation movement, the spline in thequaternion space should as far as possible be on the surface of the unitsphere. It is only in this way possible to achieve a uniformparametrization of the projection of the quaternion spline on the unitsphere, because on converting quaternions into rotation matrixes eachquaternion qi must be standardized. Through the reduction of thefour-dimensional quaternion spline to three degrees of freedom duringprojection on the unit sphere (standardization of the quaternion splineor the individual quaternions), the risk arises of a distortedparametrization of the standardized spline, which can in turn lead to anundesired movement behaviour of a robot controlled in this way.

[0010] In the known spline interpolation method there is aparametrization of the movement or spline by means of a commonparameter, often called the motion parameter t and which is related tothe time coordinate τ (cf. Horsch and Jüttler, top left on p 221). For agiven point sequence P_(i), i=1, . . . , n, the length of theparametrization interval [t_(i),t_(i+1)] is generally considered to beproportional to the spacing of the associated points P_(i),P_(i+1). Intosaid spacing is introduced both the Cartesian distance and changes tothe orientation and optionally auxiliary axes. However, it has beenfound that a parametrization by means of only a single parameter givesto the aforementioned disadvantages.

[0011] The problem of the invention is to further develop a method anddevice of the aforementioned type in such a way that there are noundesired, uneconomic path movements, such as loops or the like. Inaddition, movement or motion control is to take place in such a way thatreorientation from point to point is at a minimum.

SUMMARY OF THE INVENTION

[0012] In the case of the method of the aforementioned type., the setproblems are solved by the invention in that components of the motionare separately parametrized. In a device of the aforementioned type, theset problems are solved in that it has an interpolation device, which isconstructed for the separate parametrization of components of motionduring interpolation.

[0013] According to the invention, through the separate parametrizationof all the components of P_(i), which must not influence one another,e.g. the Cartesian position and orientation, the aforementioneddisadvantages are avoided.

[0014] According to a further development of the invention, theCartesian positions of the manipulator are parametrized orparametrizable separately from the associated orientations.

[0015] If the manipulator to be controlled has auxiliary axes, accordingto a further development of the invention, movements of auxiliary axesare parametrized or parametrizable separately from the positions and/ororientations of the manipulator.

[0016] In order to utilize the known, suitable characteristics ofquaternions in the description of rotary movements in space, accordingto a preferred development of the invention, an orientation guidancetakes place by means of quaternions q_(i), i=1, . . . , n and the deviceaccording to the invention is set up for such an orientation guidance.

[0017] Alternatively, according to a further development of theinvention, an orientation guidance takes place by means of successiverotations with Euler angles A_(i), B_(i), C_(i), i=1, . . . , n, and thedevice according to the invention is set up for such an orientationguidance and in each case directly succeeding rotations take place aboutaxes perpendicular to one another.

[0018] Preferably, in this connection, use is made of extended orexpanded Euler angles with A_(i), B_(i), C_(i)∈R (R: quantity of realnumbers).

[0019] In this way, according to the invention, a uniformparametrization of the orientation is always ensured and for therepresentation thereof only three degrees of freedom are required. Inthis connection, the standard Euler angles are inventively expanded tothe total R³, which ensures minimum reorientations. It has surprisinglybeen found that by removing the limitation of the definition range ofEuler angles, much more economic movement paths can be determined.

BRIEF DESCRIPTION OF THE DRAWINGS

[0020] Further advantages and features of the invention can be gatheredfrom the claims and the subsequent description of specific embodimentsrelative to the attached drawings, wherein show:

[0021]FIG. 1a a path curve of a robot movement in two dimensionsaccording to the prior art with undesired loop formation.

[0022]FIG. 1b A path curve according to the invention of a robotmovement in two dimensions without loop formation.

[0023]FIG. 2a A rotation in the description with Euler angles.

[0024]FIG. 2b The rotation according to FIG. 2a in a differentdescription with Euler angles.

[0025]FIG. 3 A rotation movement in the representation with standardEuler angles.

[0026]FIG. 4 A representation of the rotation of FIG. 3 with extended orexpanded Euler angles.

[0027]FIG. 5 A flow chart of a method according to the invention whenusing the quaternion algorithm.

[0028]FIG. 6 A flow chart of an inventive method when using the Eulerangle algorithm.

[0029]FIG. 7 A block diagram of the device according to the invention.

DETAILED DESCRIPTION OF THE DRAWINGS

[0030] In a simplified, two-dimensional representation, FIG. 1a shows aCartesian motion contour B for the motion of an industrial robot. It ispossible to see two Cartesian coordinates x(t), y(t), which aredependent on a common parameter t, which is generally related to a timecoordinate. At S the path contour B has a loop, i.e. over the associatedinterval of parameter t, the robot performs a generally undesired,because uneconomic forward and backward movement in the x and/or ydirection and which should be avoided in practice. Curve B interpolatesa predetermined sequence of points Pi, which give the course of therobot movement in a multidimensional space. The points P_(i) can betaught the robot control responsible for the movement control or this isobtained online during a manipulation process, e.g. from sensorinformations or the like. For interpolating P_(i) during robot movementsuse is made of standard splines (Horsch and Jüttler, loc. cit.).Hereinafter

P _(i)=(X _(i) ,Y _(i) ,Z _(i) ,A _(i) ,B _(i) ,C _(i) ,E _(l) , . . .,Em)∈R^(6+m), i=1, . . . ,n

[0031] are the robot positions to be interpolated (for a 6 axis robotwith m auxiliary axes E1 to Em). Thus, what is sought is aparametrization of a spline Sp of the desired contour, i.e.

Sp(t _(i))=P _(i) for all i=1, . . . ,n and t _(i) <t ₂ <t ₃ < . . . <t_(n),

[0032] which leads to an optimum smooth curve. In order to obtain afavourable contour, the length of the parametrization intervals[t_(i),t_(i+1)] is generally chosen proportional to the spacing of theassociated points P_(i),P_(i+1). Into said spacing must be introducedboth the Cartesian distance and the orientation change and possiblyauxiliary axis changes. This procedure is intended to avoid undesiredloops.

[0033] A spline is generally a piecemeal polynomial interpolation withselectable characteristics of the polynomials at the junction points(e.g. continuity and differentiatability of the first derivative and/orcontinuous second derivative in the case of cubic spline interpolationwith third degree or cubic functions).

[0034] A parametrization with only one parameter t can, as shown in FIG.1a, in sections [P_(i),P_(i+1)] where modifications to the orientation,the Cartesian position and possibly the auxiliary axes differ widely(e.g. minimum Cartesian modifications with simultaneously a largeorientation change), lead to a parameter interval [t_(i),t_(i+1)], whoselength is not simultaneously favourable for orientation guidance and theCartesian position. In such cases loops can still occur (FIG. 1a).

[0035] Subsequently programmed, marked reorientations can also change,e.g. lengthen the common parameter interval [t_(i),t_(i+1)], so that theCartesian contour changes, which is not acceptable in practice.

[0036] When interpolating a given sequence of points Pi through asingle, continuous curve, in addition to the “taught” Cartesianpositions (X, Y, Z), also the orientations (e.g. represented by means ofEuler angles (A, B, C) and corresponding auxiliary axis positions (E1,E2, . . . )) are interpolated and simultaneously the reorientation frompoint to point is to be minimized. In addition, a pure change to theorientation must not modify the Cartesian curve or auxiliary axiscontour and vice versa. Thus, the invention proposes the separateparametrization of all components of Pi, which cannot influence oneanother. For example, it is possible to separately parametrize theCartesian position, orientation (independently of a description withEuler angles or quaternions) and the different auxiliary axes, e.g.:

Kar(t _(i)):=(X _(i) ,Y _(i) ,Z _(i)), i=1, . . . n; t _(i) ∈R, t _(i)<t ₂ < . . . <t _(n)

Orio(o _(i)):=(A _(i) ,B _(i) ,C _(i)), i=1, . . . n; o _(i) ∈R, o ₁ <o₂ < . . . <o _(n)

Ek(e _(i)):=Ek _(i) , i=1, . . . , n, k=1, . . . ,m; ek _(i) ∈R, ek _(i)<ek ₂ < . . . <ek _(n).

[0037] Through a monotonically increasing intermediate parametrization

o(t) with o(t _(i))=o _(i) for all i=1, . . . , n

ek(t) with ek(t _(i))=ek _(i) for all i=1, . . . , n, k=1, . . . , m

[0038] the desired interpolation characteristic is guaranteed and acontour shown in FIG. 1b is obtained satisfying the desiredrequirements:

Sp(t)=(Kar(t), Orio(o(t)), E=(e=(t)), . . . , Em(em(t))).

[0039] In order to maintain monotony of the intermediate parametrizationfor a given order of differentiatability, it is e.g. possible to makeuse of interpolating splines, which contain an additional parameter bymeans of which the spline can be forced randomly close to the associatedpolygonal course (cf. e.g. Helmuth Späth, Spline Algorithms, 4thedition, R. Oldenbourg Verlag 1986, Generalized Cubic Spline Functions).

[0040] A pure orientation change in one point consequently only changesthe parametrization or intermediate parametrization of the orientation,but not that of the Cartesian path or the auxiliary axes.

[0041] Orientation guidance can take place with quaternions or Eulerangles.

[0042] 1. Orientation Guidance with Quaternions

[0043] Each reorientation in space can be represented by a rotationabout a suitable vector v∈R³ (with |v|=1) and angle φ. Between this pair(vector, angle) and the associated quaternion q, the following linkexists: $\begin{matrix}{q = \left( {w,x,y,z} \right)} \\{= \left( {{\cos \left( {{1/2}\phi} \right)},{{\sin \left( {= {{/2}\phi}} \right)} \cdot v}} \right.} \\{= \left( {{\cos \left( {{{- 1}/2}\phi} \right)},{{\sin \left( {{{- 1}/2}\phi} \right)} \cdot \left( {- v} \right)}} \right)}\end{matrix}$

[0044] Thus, a rotation by −v with −φ not only leads to the sameorientation, but also to the same quaternion.

[0045] However, a rotation by v in the opposite direction, i.e. with−(2π−φ), naturally also leads to the same orientation, but −q isobtained as the associated quaternion (the sign contains the informationconcerning the rotation direction). Between the pair (rotation vector,angle) and the associated quaternions, the following associationconsequently exists:

q

(V,φ), (−v,−φ)

−q

(v, −(2π−φ)), (−v, 2π−φ).

[0046] For the unit quaternions q=(±1, 0, 0, 0) φ=0 or 2π, and due tosin(½φ)=0 the vector v can be chosen at random. For all remainingquaternions on the unit circle it is always possible to determine twopairs (v,φ), (−v,−φ) with φ≠0 or φ≠2π.

[0047] On converting into an orientation matrix the quaternion isstandardized, i.e. all positive multiples of a quaternion differing fromzero lead to the same orientation matrix and rotation direction.

[0048] In order to discover an absolutely uniformly parametrizedorientation control by means of a quaternion spline, which is alwayslocated on the surface of the unit sphere in quaternion space and wherethe dimension of the orientation spline is reduced by one dimension(from four to three), the invention proposes that for the determinationof the spline successively the following steps are performed(hereinafter N is the quantity of the natural numbers and Z the quantityof the whole numbers):

[0049] Representation of each quaternion on the four-dimensional unitsphere according to

q(α,β,φ)=(cos(½φ), sin(½φ)·v(α,β))

[0050] with

(v(α,β)=(cos(α) cos(β), sin(α) cos(β), sin(β)),

[0051] in which α, β, (and r=1) give the spherical coordinates of therotating vectors v=v(α,β)

[0052] determination of motion-optimum pairs (v_(i),φ_(i)) by

[0053] a) adapting the sign of q_(i), so that

q _(iT) q _(i+1)≧0 for all i=1, . . . , n−1;

[0054] b) for all i=1, . . . , n determination of a possible pair(v_(i), φ_(i)) with

q _(i)=(cos(½φ_(i)), sin(½φ_(i))v _(i));

[0055] c) choice of a random starting pair (V_(iStart), φ_(iStart)),with iStart∈I:={i=1, . . . ,n | q_(i)≠(±1, 0, 0, 0)}, e.g.iStart=min{i∈I};

[0056] on choosing iStart∉I, the completely freely selectable rotaryvector v_(iStart) would be unnecessarily fixed, which can lead to asuboptimum orientation, because the starting pair would itself no longerbe adapted;

[0057] d) for all j∈{1, . . . , n} with the exception of j=iStartdetermination of in each case precisely one pair (v_(j),φ_(j) startingfrom a reference pair (v_(i),φ_(i)) in accordance with steps e) to g),in which i∈{1, . . . , n) is a neighbouring index, i.e. i=j+l or i=j−1and also either i=iStart or the reference pair has already been adaptedaccording to steps e) to g);

[0058] e) determination of k*, h*∈Z, so that $\begin{matrix}{{{{{{\phi_{j,1}\left( k \right.}}{*)}} - \phi_{i}}} = {\min \left\{ {{{{\phi_{j,1}(k)} - \phi_{i}}},{k \in Z}} \right\}}} \\{{= {\min \left\{ {{{\phi_{j} + {4k\quad \pi} - \phi_{i}}},{k \in Z}} \right\}}},} \\{{{{{{\phi_{j,2}\left( h \right.}}{*)}} - \phi_{i}}} = {\min \left\{ {{{{\phi_{j,2}(h)} - \phi_{i}}},{h \in Z}} \right\}}} \\{{= {\min \left\{ {{{{- \phi_{j}} + {4h\quad \pi} - \phi_{i}}},{h \in Z}} \right\}}};}\end{matrix}$

[0059] f) subsequently for j∈I determination of

d _(j,1)=|arccos(v _(i) ^(T) _(j))|+|φ_(j,1)(k*)−φ_(i)|,

d _(j,2)=|arccos(v _(i) ^(T)(−v _(j)))|+|(φ_(j,2)(h*)−φ_(i)−

or for j∈I

d _(j,1)=|φ_(j,1)(k*)−φ_(i)|,

d _(j,2)=|φ_(j,2)(h*)−φ_(i)|;

[0060] g) subsequently in each case choice of (v_(j), φ_(j)), where for${j \notin {I\left( {v_{j},\phi_{j}} \right)}} = \begin{matrix}\left\{ {\left( {v_{j},{\phi_{j,1}\left( k^{*} \right)}} \right),{d_{j,1} \leq d_{j,2}}} \right. \\\{ \\\left\{ {\left( {{- v_{j}},{\phi_{j,2}\left( h^{*} \right)}} \right),{d_{j,1} > d_{j,2}}} \right.\end{matrix}$${{{or}\quad {for}\quad j} \notin {I\left( {v_{j},\phi_{j}} \right)}} = \begin{matrix}\left\{ {\left( {v_{i},{\phi_{j,1}\left( k^{*} \right)}} \right),{{{if}\quad d_{j,1}} \leq d_{j,2}}} \right. \\\{ \\\left\{ {\left( {v_{i},{\phi_{j,2}\left( h^{*} \right)}} \right),{{{{if}\quad d_{j,1}} > d_{j,2}};}} \right.\end{matrix}$

[0061] v_(j) can be in principle randomly selected for j∉I. The specificchoice (v_(j)=v_(i)) is only provisional (until all (v_(j), φ_(j)) areadapted) and guarantees that in step d) there is always a completereference pair and the freely selectable rotary vectors are ignored(i.e. skipped), so that finally there is always a minimization of thespacing between neighbouring, not freely selectable rotary vectors.

[0062] When all the pairs (v_(i), φ_(i)) are adapted according to stepse) to g), the freely selectable v_(i) (with i∈I) are no longer requiredand can be deleted or cancelled;

[0063] determination of pairs (α_(i), β_(i)) from v_(i) in sphericalcoordinate representation by:

[0064] h) determining standard spherical coordinates (α_(i), β_(i)) ofv_(i) for all i∈I:

v _(i)=(cos(α_(i)) cos(β_(i)), sin(α_(i)) cos(β_(i)), sin(β_(i)));

[0065] i) definitions of

J:={j∈I with v _(j)≠(0, 0, ±1)},

L:={j∈I with v _(j)=(0, 0, ±1)}

[0066] and therefore definition of expanded spherical coordinates fromR×R

[0067] for i∈J:

(α_(i),1(h), β_(i,1)(k))=(α_(i)+2hπ, β _(i)+2kπ), h, k∈Z;

(α_(i,2)(1), β_(i,2)(m))=(α_(i)+π+2lπ, π−β _(i)+2mπ), l, m∈Z;

[0068] for i∈L:

(α_(i)(x), β_(i)(k))=(x, β _(i)+2kπ), x∈R, k∈Z

[0069] (as β_(i)=±π/2 for i∈L, supplies (α_(i)(x)+π, π−β_(i)(k)) nofurther solutions);

[0070] j) fixing a random starting pair (α_(iStart), β_(iStart)) withjStart∈J, e.g. jStart=min {j∈J} (jStart∈L would be unfavourable, becausethe freely selectable parameter α_(j) would then be fixed beforehand,which would lead to a suboptimum solution);

[0071] k) for all j∈I with the exception of j=jStart in each casedetermination of expanded polar coordinates in accordance with steps l)and m), in which i∈I is an adjacent index of j, so that there is no k∈Ibetween i and j and also either i=jStart or the reference pair (α_(i),β_(i)) has already been adapted according to steps l) and m);

[0072] l) determination of j∈J of values h*, k*, l*, m*∈Z withd_(j, 1) = min {α_(j, 1)(h) − α_(i) + β_(j, 1)(k) − β_(i), with  h, k ∈ Z}   = α_(j, 1)(h^(*)) − α_(i) + β_(j, 1)(k^(*)) − β_(i);d_(j, 2) = min {α_(j, 2)(l) − α_(i) + β_(j, 2)(m) − β_(i), with  l, m ∈ Z}   = α_(j, 2)(l^(*)) − α_(i) + β_(j, 2)(m^(*)) − β_(i)or  for  j ∈ L  of  a  value  k^(*) ∈ Z  withβ_(j)(k^(*)) − β_(i) = min {β_(j)(k) − β_(i), k ∈ Z};

[0073] m) subsequently choice of (α_(j), β_(j)), in which${{{{{for}\quad j} \in {J\left( {\alpha_{j},\beta_{j}} \right)}} = \begin{matrix}\left\{ {\left( {{\alpha_{j,1}\left( h^{*} \right)},{\beta_{j,1}\left( k^{*} \right)}} \right),{d_{j,1} \leq d_{j,2}}} \right. \\\{ \\\left\{ {\left( {{\alpha_{j,2}\left( l^{*} \right)},{\beta_{j,2}\left( m^{*} \right)}} \right),{d_{j,1} > d_{j,2}}} \right.\end{matrix}}{{{{or}\quad {for}\quad j} \in {L\left( {\alpha_{j},\beta_{j}} \right)}} = \left( {\alpha_{i},{\beta_{j}\left( k^{*} \right)}} \right)}};$

[0074] for j∈L, α_(j) is in principle randomly selectable.

[0075] The specific choice (α_(j)=α_(i)) is only provisional (until all(α_(j), β_(j)) are adapted) and guarantees that in step l) there isalways a complete reference pair and that freely selectable α angles areignored (i.e. skipped), so that the spacing from one α angle to the next(adjacent) not freely selectable α angle is minimized.

[0076] When all the pairs (α_(j),β_(j)) are adapted according to stepsl) and m), the freely selectable α_(j) (with j∈L) are no longer requiredand can be deleted;

[0077] n) choice of a number of triples determined according to steps a)to m) $\left( {\alpha_{i},\beta_{i},\phi_{i}} \right) = \begin{matrix}\left\{ {{\left( {\alpha_{i},\beta_{i},\phi_{i}} \right)\quad {for}\quad i} \in J} \right. \\\left\{ {{\left( {}^{*}{,\quad \beta_{i},\quad \phi_{i}} \right)\quad {for}\quad i}\quad \in \quad L} \right. \\\left\{ {{{\left( {}^{*}{,^{\quad*},\quad \phi_{i}} \right)\quad {for}\quad i}\quad \in \quad I},} \right.\end{matrix}$

[0078] in which the components designated with * are randomlyselectable;

[0079] o) adapting the selectable components in the triples (α_(i),β_(i), φ_(i));

[0080] interpolation of the triples (α_(i), β_(i), φ_(i)) selectedinstep n) by a spline and using the interpolation function in q(α,β,φ).

[0081] Interpolated path curves for robot movements determined in thisway more particularly avoid the undesired loop formation shown in FIG.1a, even in the case of subsequent changes to individual components ofmotion, such as the orientation in space, because such motion componentshave, according to the invention, their own parametrization in eachcase, which can be adapted without any negative effects on the othercomponents of motion.

[0082] The adaptation of the freely selectable components of(α_(i),β_(i),φ_(i)) takes place according to a further development ofthe above algorithm using:

[0083] iMin:=min {i∈I}

[0084] iMax:=max {i∈I}

[0085] iMin:=min {j∈J}

[0086] jMax:=max {j∈J},

[0087] so that $\alpha_{p} = \begin{matrix}\left\{ {{{\alpha_{j\quad {Min}}\quad {for}\quad 1} \leq p < {j\quad {Min}}},} \right. \\\{ \\\left\{ {{\alpha_{j\quad {Max}}\quad {for}\quad j\quad {Max}} < p \leq n} \right.\end{matrix}$ and $\beta_{p} = \begin{matrix}\left\{ {{{\beta_{i\quad {Min}}\quad {for}\quad 1} \leq p < {i\quad {Min}}},} \right. \\\{ \\\left\{ {{\beta_{j\quad {Max}}\quad {for}\quad i\quad {Max}} < p \leq {n.}} \right.\end{matrix}$

[0088] It is also possible to select for adjacent i, j∈J for all i<p<j,i.e. p∈J

α_(p)=α_(i)+(p−i)/(j−i)·(α_(j)−α_(i))

[0089] and correspondingly for adjacent i, j∈I for all i<p<j, i.e. p∈I

β_(p)=β_(i)+(p−i)/(j−i)·(β_(j)−β_(i)).

[0090] The quaternion-based motion control according to the invention iscompactly shown in the following table 1 and in FIG. 5 by means of aflow chart. TABLE 1 Quaternion algorithm Action Calculate orientationwith rotary vectors and angles Calculate q₁ q₂ = (1, 0, 0, 0) q₃ . . .q_(n − 1) q_(n) = (−1, 0, 0, 0) quaternions adapt sign Calculate({overscore (v)}₁, {overscore (φ)}₁) ({overscore (v)}₂, {overscore(φ)}₂) ({overscore (v)}₃, {overscore (φ)}₃) . . . ({overscore(v)}_(n − 1), {overscore (φ)}_(n − 1)) ({overscore (v)}_(n), {overscore(φ)}_(n)) rotary vectors/ with with {overscore (v)}_(n) = {overscore(v)}_(n − 1) angles {overscore (v)}₂ = {overscore (v)}₁ Minimize (v₁,φ₁) (v₂, φ₂) (v₃, φ₃) . . . (v_(n − 1), φ_(n − 1)) (v_(n), φ_(n))changes between pairs Delete (v₁, φ₁) (*, φ₂) (v₃, φ₃) . . . (v_(n − 1),φ_(n − 1)) (*, φ_(n)) freely selectable v_(i) Action Calculate expandedpolar coordinates for rotary vectors Consider v₁ = (0, 0, −1) * v₃ . . .v_(n − 1) = (0, 0, 1) * rotary vectors Calculate ({overscore (α)}₁,{overscore (β)}₁) (*, *) ({overscore (α)}₃, {overscore (β)}₃) . . .({overscore (α)}_(n − 1), {overscore (β)}_(n − 1)) (*, *) polarcoordinates with {overscore (α)}₁ = {overscore (α)}₃ with {overscore(α)}_(n − 1) = {overscore (α)}_(n − 2)) Calculate (α₁, β₁) (*, *) (α₃,β₃) . . . (α_(n − 1), β_(n − 1)) (*, *) expanded polar coordinatesDelete (*, β₁) (*, *) (α₃, β₃) . . . (*, β_(n − 1)) (*, *) freelyselectable α_(i) Action Represent orientation with “quaternion-polarcoordinates” Calculate (*, β₁, φ₁) (*, *, φ₂) (α₃, β₃, φ₃) . . . (*,β_(n − 1), φ_(n − 1)) (*, *, φ_(n)) three- dimensional splines by

[0091] 2. Orientation Control or Guidance with Euler Angles

[0092] Whilst by definition the “classic” Euler angles are restricted toa part of R³ with [−π,π]×[−π/2,π/2]×[−π,π], according to the inventionall Euler angle restrictions are dropped. Among all the possiblevariants of the orientation representation with “expanded Euler angles”from R×R×R (R³) those leading to the minimum reorientations are sought.

[0093] On successively performing three rotations by angles A, B and C,rotating in each case about an axis in the jointly rotated system, saidangles are referred to as Euler angles. Independently of the sequence ofthe axes about which rotation takes place, for each orientation thereare twelve different types of Euler angles, e.g. X-Y-Z Euler angles,X-Y-X Euler angles, etc.

[0094] If A, B and C are e.g. Z-Y-X Euler angles, then the totalrotation R is obtained from

R=rot(z,A)·Rot(y,B)·Rot(x,C),

[0095] in which Rot(v,ω) designates a rotation about v with angle ω.

[0096] The following considerations can be transferred to all Eulerangle types. Thus, without restriction, there can be a limitation toZ-Y-X Euler angles. In this case, the target orientation is obtainedfrom the starting orientation (reference system I), in that

[0097] in reference system I rotation takes place about the Z axis withA (result: reference system I′);

[0098] in the once-primed reference system I′ rotation takes place aboutthe y′ axis with B (result: reference system I″):

[0099] in the twice-primed reference system I″ rotation about the x″axis with C (result: target orientation R).

[0100] This is shown in exemplified manner in FIG. 2a for Z-Y-X Eulerangles. Firstly the reference system I is transformed by a rotation withA=π/4 about the Z axis (positive counterclockwise rotation direction) istransformed into the reference system I′. Subsequently by rotation aboutthe newly defined y′ axis with B=π/3, the reference system I′ istransformed into a new reference system I″. Finally, by rotating aboutthe axis x″ with C=π/4, this passes into the desired target orientation.

[0101] On considering only the x″ axis in the reference system I″ (or inthe case of target orientation), the angles A and B clearly representthe spherical coordinates thereof with respect to the startingorientation. The same x″ is obtained with the angle pair (A+π,π−B).

[0102] However, in this case y″ and z″ are rotated by an angle π withrespect to the case with (A, B, C). Thus, the same target orientation isobtained when using Euler angles (A+π,π−B,C+π). Thus, in the precedingexample, in place of (π/4, π/3, π/4), the trio ({fraction (5/4)}π, ⅔π,{fraction (5/4)}π). This is shown in FIG. 2b).

[0103] According to the invention, such an Euler angle adaptation isbrought about in that for minimum reorientation successively thefollowing steps are performed and without restriction of the generalnature, the Euler angles A,B,C indicate rotations about theinstantaneous z axis, y axis or x axis:

[0104] Representation of the orientations (A_(i), B_(i), C_(i)) by:

[0105] a) determination of standard Euler angles (A_(i), B_(i), C_(i)),

[0106] b) for I:={i=1, . . . , n|B_(i)≠±π/2+2kπ, k∈Z} and i∈I definitionof

(A _(i,1)(g), B _(i,1)(h), C _(i,1)(k))=(A _(i)+2gπ, B _(i)+2hπ, C_(i)+2kπ), g, h, k∈Z; and

(A _(i,2)(1), B _(i,2)(m), C _(i,2)(o)=(A _(i)+π+2lπ, π−B _(i)+2mπ, C_(i)+π+2oπ), l, m, o∈Z;

[0107] c) for J:={i=1, . . . , n|B_(i)=π/2+2kπ, k∈Z} and i∈J definitionof

(A _(i)(t), B _(i)(h), C _(i)(k, t))=(A _(i) +t, B _(i)+2hπ, C _(i)+t+2kπ), t∈R, h, k∈Z

[0108] (for i∈J the alternative representation (A_(i)(t)+π, π−B_(i)(h),C_(i)(k, t)+π) supplies no new solutions);

[0109] d) for L:={i=1, . . . , n|B_(i)=−π/2+2kπ, k∈Z} and i∈L definitionof

(A _(i)(t), B _(i)(h), C _(i)(k, t))=(A _(i) +t, B _(i)+2hπ, C _(i)−t+2kπ), t∈R, h, k∈Z

[0110] (for i∈L the representation (A_(i)(t)+π, π−B_(i)(h), C_(i)(k,t)+π) supplies no new solutions);

[0111] e) choice of a random starting pair (A_(iStart), B_(iStart),C_(iStart)) with iStart∈I, e.g. iStart=min {i∈I}; iStart∈J∪L would givea suboptimum orientation control, because the starting pair is itself nolonger adapted and therefore the parameter t freely selectable foriStart∈J∪L would have to be predetermined in fixed form;

[0112] f) for all j∈{1, . . . , n) apart from j=iStart determination ofexpanded Euler angles (A_(j), B_(j), C_(j)) according to steps g) andh), where i∈{1, . . . , n} is an adjacent index, i.e. i=j+1 or i=j−1 andadditionally either i=iStart or a reference pair (A_(i), B_(i), C_(i))has already been adapted according to steps g) and h):

[0113] g) for j∈I determination of

d _(j,1)=min{|A _(j,1)(g)−A _(i) |+|B _(j,1)(h)−B _(i) |+|C _(j,1)(k)−C_(i) |, g, h, k∈Z};

d _(j,2)=min{|A _(j,2)(l)−A _(i) |+|B _(j,2)(m)−B _(i|+|) C _(j,2)(o)−C_(i) |, l, m, o∈Z};

[0114] assuming the minimum for g*, h*, k* or l*, m*, o*; and choice of$\left( {A_{j},B_{j},C_{j}} \right) = \begin{matrix}\left\{ {\left( {{A_{j,1}\left( g^{*} \right)},{B_{j,1}\left( h^{*} \right)},{C_{j,1}\left( k^{*} \right)}} \right),} \right. \\\left\{ {{{if}\quad d_{j\quad 1}} \leq d_{j\quad 2}} \right. \\\{ \\\left\{ {\left( {{A_{j,2}\left( l^{*} \right)},{B_{j,2}\left( m^{*} \right)},{C_{j,2}\left( o^{*} \right)}} \right),} \right. \\\left\{ {{{{if}\quad d_{j,\quad 1}} > d_{j,\quad 2}};} \right.\end{matrix}$

[0115] h) for j∈J or j∈L definition of

dA _(j)(t):=|A _(j)(t)−A _(i)|

dB _(j)(h):=|B _(j)(h)−B _(i)|

dC _(j)(k,t):=|C_(j)(k, t)−C _(i)|

[0116] with h, k∈Z and t∈R;

[0117] determination of h*∈Z with

dB _(j)(h*)=min{dB _(j)(h), h∈Z};

[0118] calculation of zero points of dA_(j)(t) or dC_(j)(k, t) withrespect to t, in which ta_(0,j) is the zero point of dA_(j)(t) andtc_(0,j)(k) is the zero point of dC_(j)(k, t) dependent on the parameterk; choice of k*∈Z, so that there is a minimum spacing of the zeropoints, i.e.

|ta _(0,j) −tc _(0,j)(k*)|=min{|ta _(0,j) −tc _(0,j)(k)|, k∈Z};

[0119] choice of t* random between ta_(0,j) and tc_(0,j)(k*), becausethere is always fulfilment there of

dA _(j)(t*)+dB _(j)(h*)+dC _(j)(k*, t*)=min{dA _(j)(t)+dB _(j)(h)+dC_(j)(k, t), t∈R, h, k∈Z}

[0120] and choice of

(A _(j) , B _(j) , C _(j))=(A _(j)(t*), B _(j)(h*), C _(j)(k*, t*));

[0121] interpolation of the triple (A_(i), B_(i), C_(i)) by a spline anduse of the interpolation function in the rotation matrix R(A, B, C).

[0122] According to a preferred development of the above-describedalgorithm, the parameter t* is chosen according tot*=½(ta_(0,j)+tc_(0,j)(k*)). This leads to equal amount orientationchanges in the A and C angles.

[0123] The advantage of the above-described algorithm for thedetermination of expanded Euler angles is illustrated by the followingexample shown in FIGS. 3 and 4:

[0124] There are two triples of Z-Y-X Euler angles

(A ₀ , B ₀ , C ₀)=(0, π/2−½, π)

(A ₁ , B ₁ , C ₁)=(π/2, π/2−½, 0).

[0125] If these values are guided linearly into one another, i.e. bylinear interpolation, then for the associated coordinate rotations thereis a configuration as shown in FIG. 3.

[0126]FIG. 3 shows how the initial reference system I is transformed bylinear interpolation of the angular overall change for each coordinateaxis into a target orientation R. As a result of the limitation of thevalue range for classic Euler angles, in certain circumstances there areundulating movements for individual coordinate axes, as is apparent inFIG. 3 relative to the movement of coordinate axis Z. In the lower areaof FIG. 3 reaches the boundary of its definition range and then returnsto the smaller value range, which brings about said undulation, which inthe same way as the loop formation according to FIG. 1a, represents anuneconomic form of orientation control for robots and which musttherefore be avoided.

[0127] If instead (starting from the initial orientation) determinationtakes place of the adapted Euler trio, then we obtain:

(−π/2, π/2+½, π)=(A ₁+π−2π, π−B, C ₁+π).

[0128] As shown in FIG. 4, the associated rotation matrixes consequentlypass into one another over the intuitively shortest path, so that therobot movement follows a much more economic course, which has a positiveeffect regarding the duration and space requirement for manipulationprocesses. Characteristic undulations are avoided, unlike in the case ofFIG. 3.

[0129] The movement control by means of expanded Euler angles accordingto the invention is illustrated in table 2 and FIG. 6 by means of a flowchart and in compact form. TABLE 2 Algorithm with expanded Euler anglesAction Determine expanded Euler angles Calculate ({overscore (A)}₁,{overscore (B)}₁, {overscore (C)}₁) ({overscore (A)}₂, {overscore (B)}₂,{overscore (C)}₂) . . . ({overscore (A)}_(n−1), {overscore (B)}_(n−1),{overscore (C)}_(n−1)) ({overscore (A)}_(n), {overscore (B)}_(n),{overscore (C)}_(n)) standard Euler {overscore (B)}₁ = π/2 {overscore(B)}_(n−1) = − π/2 angles Determine (A₁, B₁, C₁) (A₂, B₂, C₂) . . .(A_(n−1), B_(n−1), C_(n−1)) (A_(n), B_(n), C_(n)) expanded Euler anglesfrom iStart

= (A_(istart), B_(istart), C_(istart))

Represent orientation with expanded Euler angles. Calculate (A₁, B₁, C₁)(A₂, B₂, C₂) . . . (A_(n−1), B_(n−1), C_(n−1)) (A_(n), B_(n), C_(n))three- dimensional spline by

[0130] By means of a block diagram, FIG. 7 shows a possible developmentof a device according to the invention and which is suitable forcontrolling the movements of a manipulator in accordance with theabove-described method. A manipulator is shown in the form of anindustrial robot 1 having an associated control means 2, which accordingto the invention in particular has computing means 3, which are set upin the form of a compiler/interpreter 4 and interpolation unit andthrough which the aforementioned algorithms for movement control can beimplemented from the control standpoint in that the computing means 3act within the control means 2 on drive means 6 of robot 1. By means ofa manually operable control unit 8, an operator 7 can act on thesequences in the control means 2, specifically in the computing means 3,e.g. by a subsequent programming of reorientations of robot 1.

1. Method for the controlling movements of a manipulator, such as an industrial robot, given point sequences of poses (positions and orientations) being interpolated by splines, wherein components of the motion are separately parametrized.
 2. Method according to claim 1, wherein positions of the manipulator are parametrized separately from the orientations thereof.
 3. Method according to claim 1, wherein movements of auxiliary axes are parametrized separately from the positions and/or orientations of the manipulator.
 4. Method according to claim 1, wherein an orientation control takes place by means of quaternions (q_(i), i=1, . . . , n).
 5. Method according to claim 4, wherein for minimum reorientation between individual points successively the following steps are performed: representation of each quaternion on the four-dimen sional unit sphere according to q(α,β,φ)=(cos ½φ), sin(½φ)· v(α, β)) with (v(α,β)=(cos(α) cos(β), sin(α) cos(β), sin(β)), in which α, β, (and r=1) give the spherical coordinates of the rotating vectors v=v(α, β) determination of motion-optimum pairs (v_(i), φ_(i)) by a) adapting the sign of q_(i), so that qi ^(T) q _(i+1)≧0 for all i=1, . . . , n−1;b) for all i=1, b) for all i=1 . . . , n determination of a possible pair (v_(i), φ_(i)) with q _(i)=(cos(½φ_(i)), sin(½φ_(i))v _(i)); c) choice of a random starting pair (V_(iStart), φ_(iStart)), with iStart∈I:={i=1, . . . ,n|q_(i)≠(±1, 0, 0, 0)}, e.g. iStart=min{i∈I}; on choosing iStart∈I, the completely freely selectable rotary vector v_(iStart) would be unnecessarily fixed, which can lead to a suboptimum orientation, because the starting pair would itself no longer be adapted; d) for all j∈{1, . . . , n} with the exception of j=iStart determination of in each case precisely one pair (v_(j), φ_(j)) starting from a reference pair (v_(i), φ_(i)) in accordance with steps e) to g), in which i∈{1, . . . , n) is a neighbouring index, i.e. i=j+1 or i=j−1 and also either i=iStart or the reference pair has already been adapted according to steps e) to g); e) determination of k*, h*∈Z, so that $\begin{matrix} {{{{\phi_{j,1}\left( k^{*} \right)} - \phi_{i}}} = {\min \left\{ {{{{\phi_{j,1}(k)} - \phi_{i}}},{k \in Z}} \right\}}} \\ {{= {\min \left\{ {{{\phi_{j} + {4k\quad \pi} - \phi_{i}}},{k \in Z}} \right\}}},} \\ {{{{\phi_{j,2}\left( h^{*} \right)} - \phi_{i}}} = {\min \left\{ {{{{\phi_{j,2}(h)} - \phi_{i}}},{h \in Z}} \right\}}} \\ {{= {\min \left\{ {{{{- \phi_{j}} + {4h\quad \pi} - {\phi \quad i}}},{h \in Z}} \right\}}};} \end{matrix}$

f) subsequently for j∈I determination of d _(j,1)=|arccos(v _(i) ^(T) v _(j))|+|(φ_(j),1(k*)−φ_(i)|,d _(j,2)=|arccos(v _(i) ^(T)(−v _(j)))|+|(φ_(j,2)(h*)−φ_(i)|or for j∉I d _(j,1)=|φ_(j,1)(k*)−φ_(i)|,d _(j,2)=|φ_(j,2)(h*)−φ_(i)|; g) subsequently in each case choice of (v_(j), φ_(j)), where for ${j \in {I\left( {v_{j},\phi_{j}} \right)}} = \begin{matrix} \left\{ {\left( {v_{j},{\phi_{j,1}\left( k^{*} \right)}} \right),{d_{j,1} \leq d_{j,2}}} \right. \\ \{ \\ \left\{ {\left( {{- v_{j}},{\phi_{j,2}\left( h^{*} \right)}} \right),{d_{j,1} > d_{j,2}}} \right. \end{matrix}$ ${{{or}\quad {for}\quad j} \in {I\left( {v_{j},\phi_{j}} \right)}} = \begin{matrix} \left\{ {\left( {v_{i},{\phi_{j,1}\left( k^{*} \right)}} \right),{{{if}\quad d_{j,1}} \leq d_{j,2}}} \right. \\ \{ \\ \left\{ {\left( {v_{i},{\phi_{j,2}\left( h^{*} \right)}} \right),{{{{if}\quad d_{j,1}} > d_{j,2}};}} \right. \end{matrix}$

determination of pairs (α_(i), β_(i)) from v_(i) in spherical coordinate representation by h) calculation of standard spherical coordinates (α_(i), β_(i)) of v_(i) for all i∈I: v _(i)(cos(α_(i)) cos(β_(i)), sin(α_(i)) cos(β_(i)), sin(β_(i))) i) definition of J:={j∈I with v _(j)≠(0, 0, ±1)},L:={j∈I with v _(j)=(0, 0, ±1)} and therefore definition of expanded spherical coordinates from R×R for i∈J: (α_(i,1)(h), β_(i,1)(k))=(α_(i)+2hπ, β _(i)+2kπ), h, k∈Z;(α_(i,2)(1), β_(i,2)(m))=(α_(i)+π+2lπ, π−β _(i)+2mπ), l, m∈Z; for i∈L: (α_(i)(x), β_(i)(k)) (x, B _(i)+2kπ), x∈R, k∈Z; j) fixing a random starting pair (α_(jStart), β_(jStart)) with jStart∈J; k) for all j∈I with the exception of j=jStart in each case determination of expanded polar coordinates in accordance with steps l) and m), in which i∈I is an adjacent index of j, so that there is no k∈I between i and j and also either i=jStart or the reference pair (α_(i),β_(i)) has already been adapted in accordance with steps l) and m): l) determination of j∈J of values h*, k*, l*, m*∈Z with $\begin{matrix} \begin{matrix} {d_{j,1} = {\min \left\{ {{{{{\alpha_{j,1}(h)} - \alpha_{i}}} + {{{\beta_{j,1}(k)} - \beta_{i}}}},{{with}\quad h},{k \in Z}} \right\}}} \\ {{{= {{{{\alpha_{j,1}\left( h^{*} \right)} - \alpha_{i}}} + {{{\beta_{j,1}\left( k^{*} \right)} - \beta_{i}}}}};}} \end{matrix} \\ \begin{matrix} {d_{j,2} = {\min \left\{ {{{{{\alpha_{j,2}(l)} - \alpha_{i}}} + {{{\beta_{j,2}(m)} - \beta_{i}}}},{{with}\quad l},{m \in Z}} \right\}}} \\ {{= {{{{\alpha_{j,2}\left( l^{*} \right)} - \alpha_{i}}} + {{{\beta_{j,2}\left( m^{*} \right)} - \beta_{i}}}}}} \end{matrix} \\ {{{or}\quad {for}\quad j} \in {L\quad {of}\quad a\quad {value}\quad k^{*}} \in {Z\quad {with}}} \\ {{{{{\beta_{j}\left( k^{*} \right)} - \beta_{i}}} = {\min \left\{ {{{{\beta_{j}(k)} - \beta_{i}}},{k \in Z}} \right\}}};} \end{matrix}$

m) subsequently choice of (αj, β_(j)), in which for j∈J $\begin{matrix} {\left( {\alpha_{j},\beta_{j}} \right) = \begin{matrix} \left\{ {{\left( {{\alpha_{j,1}\left( h^{*} \right)},{\beta_{j,1}\left( k^{*} \right)}} \right)\quad d_{j,1}} \leq d_{j,2}} \right. \\ \{ \\ \left\{ {{\left( {{\alpha_{j,2}\left( l^{*} \right)},{\beta_{j,2}\left( m^{*} \right)}} \right)\quad d_{j,1}} > d_{j,2}} \right. \end{matrix}} \\ {{{or}\quad {for}\quad j} \in L} \\ {{\left( {\alpha_{j},\beta_{j}} \right) = \left( {\alpha_{i},{\beta_{j}\left( k^{*} \right)}} \right)};} \end{matrix}$

n) choice of a number of triples determined according to steps a) to m) $\left( {\alpha_{i},\beta_{i},\phi_{i}} \right) = \begin{matrix} \left\{ {{\left( {\alpha_{i},\beta_{i},\phi_{i}} \right)\quad {for}\quad i} \in J} \right. \\ \left\{ {{(*}{{\left. {,\beta_{i},\phi_{i}} \right)\quad {for}\quad i} \in \quad L}} \right. \\ \left\{ {{(*}{{{\left. {,{*{,\phi_{i}}}} \right)\quad {for}\quad i} \in \quad I},}} \right. \end{matrix}$

in which all components designated * can be selected at random; o) adaptation of the selectable components in the triples (α_(i), β_(i), φ_(i)); interpolation of the triples (α_(i), β_(i), φ_(i)) selected in step n) by a spline; and use of the interpolation function in q(α,β,φ).
 6. Method according to claim 5, wherein adaptation takes place of the freely selectable components of (α_(i), β_(i), φ_(i)) using: iMin:=min {i∈I} iMax:=max {i∈I} iMin:=min {j∈J} jMax:=max {j∈J}, so that $\begin{matrix} {\alpha_{p} = \begin{matrix} \left\{ \left( {{{\alpha_{jMin}\quad {for}\quad 1} \leq p < {jMin}},} \right. \right. \\ \{ \\ \left\{ {{\alpha_{jMax}\quad {for}\quad {jMax}} < p \leq n} \right. \end{matrix}} \\ {and} \\ {\beta_{p} = \begin{matrix} \left\{ \left( {{{\beta_{iMin}\quad {for}\quad 1} \leq p < {iMin}},} \right. \right. \\ \{ \\ \left\{ {{\beta_{iMax}\quad {for}\quad {iMax}} < p \leq {n.}} \right. \end{matrix}} \end{matrix}$


7. Method according to claim 6, wherein for adjacent i, j∈J for all i<p<j, i.e. p∉J a choice is made of α_(p)=α_(i)+(p−i)/(j−i)·(α_(j)−α_(i)) and correspondingly for adjacent i, j∈I for all i<p<j, i.e. p∉I is chosen β_(p)=β_(i)+(p−i)/(j−i)·(β_(j)−β_(i)).
 8. Method according to claim 1, wherein an orientation control takes place by means of successive rotations through Euler angles A₁, B_(i), C_(i), i=1, . . . , n, and in each case directly succeeding rotations take place about axes perpendicular to one another.
 9. Method according to claim 8, wherein use is made of expanded Euler angles A_(i), B_(i), C_(i)∈R.
 10. Method according to claim 9, wherein for minimum reorientation successively the following steps are performed and the Euler angles A, B and C, without restricting the general nature, indicate rotations about the instantaneous z axis, y axis or x axis: representation of the orientations (A_(i), B_(i), C_(i)) by: a) determination of standard Euler angles (A_(i), B_(i), C_(i)) b) for I:={i=1, . . . , n|B_(i)≠π/2+2kπ, k∈Z} and i∈I definition of (A _(i,1)(g), B _(i,1)(h), C _(i,1)(k))=(A _(i)+2gπ, B _(i)+2hπ, C _(i)+2kπ), g, h, k∈Z; and(A _(i,2)(1), B _(i,2)(m), C _(i,2)(o))=(A _(i)+π+2lπ, π−B _(i)+2mπ, C _(i)+π+2oπ), l, m, o∈Z; c) for J:={i=1, . . . , n|B_(i)=π/2+2kπ, k∈Z} and i∈J definition of (A _(i)(t), B _(i)(h), C _(i)(k, t))=(A _(i) +t, B _(i)+2hπ, C _(i) +t+2kπ), t∈R, h, k∈Z d) for L:={i=1, . . . , n|B_(i)=π/2+2kπ, k∈Z} and i∈L definition of (A _(i)(t), B _(i)(h), C _(i)(k, t))=(A _(i) +t, B _(i)+2hπ, C _(i) −t+2kπ), t∈R, h, k∈Z e) choice of a random starting pair (A_(iStart, B) _(iStart), C_(iStart)) with iStart∈I, e.g. iStart=min {i∈I}; f) for all j∈{1, . . . , n) apart from j=iStart determination of expanded Euler angles (A_(j), B_(j), C_(j)) according to steps g) and h), where i∈{1, . . . ,n} is an adjacent index, i.e. i=j+1 or i=j−1 and additionally either i=iStart or a reference pair (A_(i), B_(i), C_(i)) has already been adapted according to steps g) and h): g) for j∈I determination of d _(j,1)=min{|A _(j,1)(g)−A _(i) |+|B _(j,1)(h)−B _(i) |+|C _(j,1)(k)−C _(i) |, g, h, k∈Z}; d _(j,2)=min{|A _(j,2)(l)−A _(i) |+|B _(j,2)(m)−B _(i) |+|C _(j,2)(o)−C _(i) |, l, m, o∈Z}; assuming the minimum for g*, h*, k* or l*, m*, o*; and choice of $\left( {A_{j},B_{j},C_{j}} \right) = \begin{matrix} \left\{ {\left( {{A_{j,1}\left( g^{*} \right)},{B_{j,1}\left( h^{*} \right)},{C_{j,1}\left( k^{*} \right)}} \right),} \right. \\ \left\{ {{{if}\quad d_{j,1}} \leq d_{j,2}} \right. \\ \{ \\ \left\{ {\left( {{A_{j,2}\left( l^{*} \right)},{B_{j,2}\left( m^{*} \right)},{C_{j,2}\left( o^{*} \right)}} \right),} \right. \\ \left\{ {{{{if}\quad d_{j,1}} > d_{j,2}};} \right. \end{matrix}$

h) for j∈J or j∈L definition of dA _(j)(t):=|A_(j)(t)−A _(i)|dB _(j)(h):=|B_(j)(h)−B _(i)|dC _(j)(_(k, t)):=|C_(j)(k, t)−C _(i)|with h, k∈Z and t∈R; determination of h*∈Z with dB _(j)(h*)=min{dB _(j)(h), h∈Z}; calculation of zero points of dA_(j)(t) or dC_(j)(k, t) with respect to t, in which ta_(0,j) is the zero point of dA_(j)(t) and tc_(0,j)(k) is the zero point of dC_(j)(k, t) dependent on the parameter k; choice of k*∈Z, so that there is a minimum spacing of the zero points, i.e. |ta _(0,j) −tc _(0,j)(k*)|=min{|ta _(0,j) −tc _(0,j)(k)|, k∈Z}; choice of t* random between ta_(0,j) and tc_(0,j)(k*), because there is always fulfilment there of dA _(j)(t*)+dB _(j)(h*)+dC _(j)(k*, t*)=min{dA_(j)(t)+dB _(j)(h)+dC _(j)(k, t), t∈R, h, k∈Z} and choice of (A _(j) , B _(j) , C _(j))=(A _(j)(t*), B _(j)(h*), C _(j)(k*, t*)); interpolation of the triple (A_(i), B_(i), C_(i)) by a spline and use of the interpolation function in the rotation matrix R(A, B, C).
 11. Method according to claim 10, wherein t*=½(ta_(0,j)+tc_(0,j)(k*)) is chosen.
 12. Device for controlling the movements of a manipulator, such as a robot, having an interpolation unit for interpolating a given point sequence of poses (positions and orientations) by splines, wherein the interpolation unit is constructed for separate parametrization of components of motion during interpolation.
 13. Device according to claim 12, wherein the interpolation unit is constructed for the separate parametrization of positions and orientations of the manipulator.
 14. Device according to claim 12, wherein the interpolation unit is constructed for the separate parametrization of on the one hand movements of auxiliary axes and on the other positions and/or orientations of the manipulator.
 15. Device according to claim 12, wherein the interpolation unit is set up for an orientation control by means of quaternions (q_(i), i=1, . . . , n).
 16. Device according to claim 15, wherein the interpolation unit is set up for performing the following steps: representation of each quaternion on the four-dimensional unit sphere according to q(α,β,φ)=(cos(½φ), sin(½φ)·v(α,β)) with v(α,β)=(cos(α) cos(β), sin(α) cos(β), sin(β)), in which α,β (and r=1) indicate the spherical coordinates of the rotary vectors v=v(α,β); determining motion-optimum pairs (v_(i), φ_(i)) by a) adapting the sign of q_(i), so that q _(i) Tq _(i+1)>0 for all i=1, . . . , n−1; b) for all i=1, . . . , n determination of a possible pair (v_(i), φ_(i)) with q _(i)=(cos(½φ_(i)), sin(½φ_(i))v _(i)); c) choice of a random starting pair (v_(iStart), φ_(iStart)) with iStart∈I:={i=1, . . . , n|q_(i)≠(±1, 0, 0, 0)}; d) for all j∈{1, . . . , n) with the exception of j=iStart determination of in each case precisely one pair (v_(j), φ_(j)) starting from a reference pair (v_(i), φ_(i)) in accordance with steps e) to g), in which i∈{1, . . . , n} is an adjacent index, i.e. i=j+1 or i=j−1 and also either i=iStart or the reference pair has already been adapted according to steps e) to g); e) determination of k*, h*∈Z, so that $\begin{matrix} \begin{matrix} {{{{\phi_{j,1}\left( k^{*} \right)} - \phi_{i}}} = {\min \left\{ {{{{\phi_{j,1}(k)} - \phi_{i}}},{k \in Z}} \right\}}} \\ {\quad {{= {\min \left\{ {{{\phi_{j} + {4k} - \phi_{i}}},{k \in Z}} \right\}}},}} \end{matrix} \\ \begin{matrix} {{{{\phi_{j,2}\left( h^{*} \right)} - \phi_{i}}} = {\min \left\{ {{{{\phi_{j,2}(h)} - \phi_{i}}},{h \in Z}} \right\}}} \\ {\quad {{= {\min \left\{ {{{{- \phi_{j}} + {4h\quad \pi} - \phi_{i}}},{h \in Z}} \right\}}};}} \end{matrix} \end{matrix}$

f) subsequently for j∈I determination of d _(j,1)=|arccos(v _(i) ^(T) v _(j))|+|φ_(j,1)(k*)−φ_(i)|,d _(j,2)=|arccos(v _(i) ^(T)(−v))|+|φ_(j,2)(h*)−φ _(i)| or for j∉I d _(j,1)=|φ_(j,1)(k*)−φ_(i)|,d _(j,2)=|φ_(j,2)(h*)−φ_(i)|; g) subsequently in each case choice of (v_(j), φ_(j)), where for j ε I $\begin{matrix} {\left( {v_{j},\phi_{j}} \right) = \begin{matrix} \left\{ {\left( {v_{j},{\phi_{j,1}\left( k^{*} \right)}} \right)\quad,\quad {d_{j,1} \leq d_{j,2}}} \right. \\ \{ \\ \left\{ {\left( {{- v_{j}},{\phi_{j,2}\left( h^{*} \right)}} \right)\quad,\quad {d_{j,1} > d_{j,2}}} \right. \end{matrix}} \\ {{{or}\quad {for}\quad j} \notin I} \\ {\left( {v_{j},\phi_{j}} \right) = \begin{matrix} \left\{ {{\left( {v_{i},{\phi_{j,1}\left( k^{*} \right)}} \right)\quad {if}\quad d_{j,1}} \leq d_{j,2}} \right. \\ \{ \\ \left\{ {{{\left( {v_{i},{\phi_{j,2}\left( h^{*} \right)}} \right)\quad {if}\quad d_{j,1}} > d_{j,2}};} \right. \end{matrix}} \end{matrix}$

determination of pairs (α_(i), β_(i)) from v_(i) in spherical coordinate representation by: h) calculating standard spherical coordinates (α_(i), β_(i)) of v_(i) for all i∈I: v _(i)=(cos(α_(i)) cos(β_(i)), sin(α_(i)) cos(β_(i)), sin(β_(i))); i) definition of J:={j∈I with v _(j)≠(0, 0, ±1)},L:={j∈I with v _(j)=(0, 0, ±1)} and therefore definition of expanded spherical coordinates from R×R for i∈J: (α_(i,1)(h), β_(i,1)(k)=(α_(i)+2hπ, β _(i)+2kπ), h, k∈Z;(α_(i,2)(l), β_(i,2)(m))=(α_(i)+π+2lπ, π−β _(i)+2mπ),l, m∈Z; for i∈L: (α_(i)(x), β_(i)(k))=(x, β _(i)+2kπ), x∈R, k∈Z; j) fixing a random starting pair (α_(jStart), β_(iStart)) with jStart∈J; k) for all j∈I with the exception of j=jStart, in each case single determination of expanded polar coordinates according to steps l) and m), in which i∈I is an adjacent index of j, so that there is no k∈I between i and j and also either i=jStart or the reference pair (α_(i), β_(i)) was already adapted according to steps l) and m); l) determination for j∈J of values h*, k*, l*, m*∈Z with $\begin{matrix} \begin{matrix} \begin{matrix} {d_{j,1} = {\min \left\{ {{{{{\alpha_{j,1}(h)} - \alpha_{i}}} + {{{\beta_{j,1}(k)} - \beta_{i}}}},{{with}\quad h},{k \in Z}} \right\}}} \\ {{= {{{{\alpha_{j,1}\left( h^{*} \right)} - \alpha_{i}}} + {{{\beta_{j,1}\left( k^{*} \right)} - \beta_{i}}}}};} \end{matrix} \\ {d_{j,2} = {\min \left\{ {{{{{\alpha_{j,2}(l)} - \alpha_{i}}} + {{{\beta_{j,2}(m)} - \beta_{i}}}},} \right.}} \end{matrix} \\ \left. {{{with}\quad l},{m \in Z}} \right\} \\ {\quad {= {{{{\alpha_{j,2}\left( l^{*} \right)} - \alpha_{i}}} + {{{\beta_{j,2}\left( m^{*} \right)} - \beta_{i}}}}}} \\ {{{or}\quad {for}\quad j} \in {L\quad {of}\quad a\quad {value}\quad k^{*}} \in {Z\quad {with}}} \\ {{{{{\beta_{j}\left( k^{*} \right)} - \beta_{i}}} = {\min \left\{ {{{{\beta_{j}(k)} - \beta_{i}}},{k \in Z}} \right\}}};} \\ {{\left. m \right)\quad {subsequent}\quad {choice}\quad {of}\quad \left( {\alpha_{j},\beta_{j}} \right)},{{{in}\quad {which}\quad {for}\quad j} \in J}} \\ {\left( {\alpha_{j},\beta_{j}} \right) = \begin{matrix} \left\{ {\left( {{\alpha_{j,1}\left( h^{*} \right)},{\beta_{j,1}\left( k^{*} \right)}} \right)\quad,\quad {d_{j,1} \leq d_{j,2}}} \right. \\ \{ \\ \left\{ {\left( {{\alpha_{j,2}\left( l^{*} \right)},{\beta_{j,2}\left( m^{*} \right)}} \right)\quad,\quad {d_{j,1} > d_{j,2}}} \right. \end{matrix}} \\ {{{or}\quad {for}\quad j} \in L} \\ {{\left( {\alpha_{j},\beta_{j}} \right) = \left( {\alpha_{i},{\beta_{j}\left( k^{*} \right)}} \right)};} \end{matrix}$

n) choice of a number of triples determined according to steps a) to m) $\left( {\alpha_{i},\beta_{i},\phi_{i}} \right) = \begin{matrix} \left\{ {{\left( {\alpha_{i},\beta_{i},\phi_{i}} \right)\quad {for}\quad i} \in J} \right. \\ \left\{ {{(*}{{\left. {,\beta_{i},\phi_{i}} \right)\quad {for}\quad i} \in \quad L}} \right. \\ \left\{ {{(*}{{{\left. {,{*{,\phi_{i}}}} \right)\quad {for}\quad i} \notin \quad I},}} \right. \end{matrix}$

where all the components designated * are randomly selectable; o) adapting the selectable components in the trios (α_(i), β_(i), φ_(i)); interpolation of the triples (α_(i), β_(i), φ_(i)) selected in step n) by a spline and use of the interpolation function in q(α, β, φ).
 17. Device according to claim 16, wherein the interpolation unit is set up for adapting the freely selectable components of (α_(i), β_(i), φ_(i)) using: iMin:=min {i∈e} iMax:=max {i∈I} iMin:=min {j∈J} jMax:=max {j∈J} so that $\begin{matrix} {\alpha_{p} = \begin{matrix} \left\{ {{{\alpha_{jMin}\quad {for}\quad 1} \leq p < {jMin}},} \right. \\ \{ \\ \left\{ {{\alpha_{jMax}\quad {for}\quad {jMax}} < p \leq n} \right. \end{matrix}} \\ {and} \\ {\beta_{p} = \begin{matrix} \left\{ \left( {{{\beta_{iMin}\quad {for}\quad 1} \leq p < {iMin}},} \right. \right. \\ \{ \\ \left\{ {{\beta_{iMax}\quad {for}\quad {iMax}} < p \leq {n.}} \right. \end{matrix}} \end{matrix}$


18. Device according to claim 17, wherein the interpolation unit is set up for adjacent i, j∈J for all i<p<j, i.e. p∉J for the determination of α_(p)=α_(i)+(p−i)/(j−i)·(α_(j)−α_(i)) and correspondingly for neighbouring i, j∈I for all i<p<j, i.e. p∉I for determining β_(p)=β_(i)+(p−i)/(j−i)·(β_(j)−β_(i)).
 19. Device according to claim 12, wherein the interpolation device is set up for an orientation control by means of successive rotations through Euler angles A_(i), B_(i), C_(i) and in each case directly succeeding rotations take place about axes perpendicular to one another.
 20. Device according to claim 19, wherein the interpolation unit is set up for the use of expanded Euler angles A_(i), B_(i), C_(i)∈R.
 21. Device according to claim 20, wherein the interpolation device is set up for the sequential performance of the following steps: representation of the orientations (A_(i), B_(i), C_(i)) by: a) determining the standard Euler angles (A_(i), B_(i), C_(i)); b) for I:=({i=1, . . . , n|B_(i)≠π/2+2kπ, k∈Z} and i∈I definition of (A _(i,1)(g), B _(i,1)(h), C _(i,1)(k)=(A _(i)+2gπ, B _(i)+2hπ, C _(i)+2kπ), g, h, k∈Z; and(A _(i,2)(l), B _(i,2)(m), C _(i,2)(o))=(A _(i)+π+2lπ, π−B _(i)+2mπ, C _(i)+π+2oπ), l, m,∈Z; c) for J:={i=1, . . . , n|B_(i)=π/2+2kπ, k∈Z} and i∈J definition of (A _(i)(t), B _(i)(h), C _(i)(k, t))=(A _(i) +t, B _(i)+2hπ, C _(i) +t+2kπ), t∈R, h, k∈Z; d) for L:={i=1, . . . , n|B_(i)=−π/2+2kπ, k∈Z} and i∈L definition of (A _(i)(t), B _(i)(h), C _(i)(k, t))=(A _(i) +t, B _(i)+2hπ, C _(i) −t+2kπ), t∈R, h, k∈Z; e) choice of a random starting pair (A_(iStart), B_(iStart), C_(iStart)) with iStart∈I; f) for all j∈{1, . . . , n}, apart from j=iStart, determining expanded Euler angles (A_(j), B_(j), C_(j)) according to steps g) and h), in which i∈{1, . . . , n} is an adjacent index, i.e. i=j+1 or i=j−1 and additionally either i=iStart or a reference pair (A_(i), B_(i), C_(i)) has already been adapted according to steps g) and h); g) for j∈I determination of d _(j,1)=min{|A _(j,1)(g)−A _(i) |+|B _(j,1)(h)−B _(i) |+|C _(j,1)(k)−C _(i) |, g, h, k∈Z}; d _(j,2)=min{|A _(j,2)(l)−A _(i) |+|B _(j,2)(m)−B _(i) |+|C _(j,2)(o)−C _(i) |, l, m, o∈Z}, assuming the minimum for g*, h*, k* or l*, m*, o*; and choice of $\left( {A_{j},B_{j},C_{j}} \right) = \begin{matrix} {\left\{ {\left( {{A_{j,1}\left( g^{*} \right)},{B_{j,1}\left( n^{*} \right)},{C_{j,1}\left( k^{*} \right)}} \right),} \right.} \\ {\left\{ {{{if}\quad d_{j,1}} \leq d_{j,2}} \right.} \\ \{ \\ \left\{ {\left( {{A_{j,2}\left( l^{*} \right)},{B_{j,2}\left( m^{*} \right)},{C_{j,2}\left( o^{*} \right)}} \right),} \right. \\ \left\{ {{{{if}\quad d_{j,1}} > d_{j,2}};} \right. \end{matrix}$

h) for j∈J or j∈L definition of dA _(j)(t):=|A_(j)(t)−A _(i)|dB _(j)(h):=|B_(j)(h)−B _(i)|dC _(j)(k,t):=|C_(j)(k, t)−C _(i)| with h, k∈Z and t∈R; determination of h*∈Z with dB _(j)(h*)=min{dB _(j)(h), h∈Z}; determination of zero points of dA_(j)(t) or dC_(j)(k, t) with respect to t, in which ta_(0,j) is the zero point of dA_(j)(t) and tc_(0,j)(k) is the zero point of dC_(j)(k, t); choice of k*∈Z, so that the spacing of the zero points is at a minimum, i.e. |ta _(0,j) −tc _(0,j)(k*)|=min{|ta_(0,j)(k)|, k∈Z}; choice of t* random between ta_(0,j) and tc_(0,j)(k*); and choice of (A _(j) , B _(j) , C _(j))=(A _(j)(t*), B_(j)(h*), C _(j)(k*, t*)); interpolation of the triples (A_(i), B_(i), C_(i)) by a spline and use of the interpolation function in the rotation matrix R (A, B, C).
 22. Device according to claim 21, wherein the interpolation unit is set up for the choice of t*=½(ta_(0,j)+tc_(0,j)(k*)). 